Crate symbolic_common

source ·
Expand description

Common functionality for symbolic.

This crate exposes a set of key types:

  • ByteView: Gives access to binary data in-memory or on the file system.
  • SelfCell: Allows to create self-referential types.
  • Name: A symbol name that can be demangled with the demangle feature.
  • InstructionInfo: A utility type for instruction pointer heuristics.
  • Functions and utilities to deal with paths from different platforms.

Features

  • serde (optional): Implements serde::Deserialize and serde::Serialize for all data types. In the symbolic crate, this feature is exposed via common-serde.

This module is part of the symbolic crate.

Structs

Wrapper around DebugId for Breakpad formatting.
A smart pointer for byte data.
Unique platform-dependent identifier of code files.
Unique identifier for debug information files and their debug information.
Helper to work with instruction addresses.
The name of a potentially mangled symbol.
Indicates an error parsing a CodeId.
Indicates an error parsing a DebugId.
A container carrying a derived object alongside its owner.
An error returned for an invalid Arch.
An error returned for an invalid Language.
A Universally Unique Identifier (UUID).

Enums

An enumeration of CPU architectures and variants.
Represents a family of CPUs.
A programming language declared in debugging information.
A Names mangling state.

Traits

Safe downcasting of dependent lifetime bounds on structs.
Extensions to Path for handling dSYM directories.
An unsafe marker trait for types that deref to a stable address, even when moved. For example, this is implemented by Box, Vec, Rc, Arc and String, among others. Even when a Box is moved, the underlying storage remains at a fixed location.

Functions

Simplifies paths by stripping redundant components.
Joins paths of various platforms.
Trims a path to a given length.
Splits off the last component of a path.
Splits off the last component of a path given as bytes.